(function ($) {
    $(function () {
        const timeSelector = '[data-timestamp]';

        /**
         * 获取当前页面语言
         * 兼容大小写（zh-CN → zh）、下划线（zh_cn → zh）、中文变体（zh-Hans → zh）
         */
        function getCurrentLang() {
            const lang = ($('html').attr('lang') || 'zh').trim();

            // 标准化处理
            const normalized = lang.toLowerCase()
                .replace(/_/g, '-')  // 转换下划线
                .split('-')[0];     // 取主语言代码

            // 中文变体统一处理
            if (['zh', 'zh-cn', 'zh_hans'].includes(normalized)) {
                return 'zh';
            }

            return normalized || 'zh'; // 最终回退
        }

        /**
         * 格式化相对时间
         */
        function formatRelativeTime(timestamp) {
            const now = new Date();
            const delta = now - new Date(timestamp);

            const lang = getCurrentLang();
            const dict = window.i18n[lang];

            const seconds = Math.floor(delta / 1000);
            const minutes = Math.floor(seconds / 60);
            const hours = Math.floor(minutes / 60);
            const days = Math.floor(hours / 24);
            const weeks = Math.floor(days / 7);
            const months = Math.floor(days / 30);
            const years = Math.floor(days / 365);

            // 秒级（小于1分钟）
            if (seconds < 10) return dict.just_now;
            if (seconds < 60) return dict.seconds_ago.replace('%d', String(seconds));
            // 分钟级（小于1小时）
            if (minutes < 60) return dict.minutes_ago.replace('%d', String(minutes));
            // 小时级（小于1天）
            if (hours < 24) return dict.hours_ago.replace('%d', String(hours));
             // 天级（小于1周）
            if (days < 7) return dict.days_ago.replace('%d', String(days));
            // 周级（小于1个月）
            if (weeks < 4) return dict.weeks_ago.replace('%d', String(weeks));
            // 月级（小于1年）
            if (months < 12) return dict.months_ago.replace('%d', String(months));
            // 年级
            if (years === 1) return dict.last_year;
            if (years > 1) return dict.years_ago.replace('%d', String(years));

            // 保护性逻辑：理论上不会执行到这里，但以防万一
            return timestamp.toLocaleDateString(lang, dict.date_format);
        }

        /**
         * 更新所有时间戳元素
         */
        function updateTimeStrings() {
            $(timeSelector).each(function() {
                const $el = $(this);
                const timestamp = new Date($(this).data('timestamp'));

                 // 只更新时间文本（保留图标和日期）
                $el.contents().filter(function() {
                    return this.nodeType === 3 && this.textContent.trim() !== '';
                }).replaceWith(formatRelativeTime(timestamp));
            });
        }

        // 1. 先计算时间但保持隐藏
        updateTimeStrings();
        // 2. 添加加载完成类（触发渐显）
        setTimeout(() => $('body').addClass('time-loaded'), 100);
        // 3. 每分钟更新一次
        setInterval(updateTimeStrings, 60 * 1000);
    })
})(jQuery);